When data is written from a host computer to a magnetic recording disk file, or read from the disk file back to the host computer, the data is transferred in a specific format comprising variable length records separated by fixed time gaps between the records. Each record typically includes several fields, some of which may be of fixed length, which are also separated by fixed time gaps. The transfer of data is controlled by a control unit which includes automatic data transfer (ADT) circuitry.
Before the data is written onto the tracks of the disk file it is often desirable to encode the data with error correction bytes. Thus when the data is subsequently read from the tracks, the error correction bytes can be decoded and errors in the data corrected before transfer back to the host processor. The error correction code (ECC) requires that the variable length field be lengthened by the number of ECC bytes required. A description of an error correcting system is given in U.S. Pat. No. 4,185,269, which is assigned to the same assignee as this application.
Additional bytes must also be appended at the end of the field to "pad" the field so that its total length equals a discrete number of multiple-byte cells.
In addition, if data is to be recorded onto a track which contains a defect in the magnetic recording media, then it is necessary to calculate the amount of data between the beginning of the field and the occurrence of the defect. This calculation requires the use of information obtained from a specific field in the record which identifies the track number and physical location on the track where the data is recorded. From this information the location and length of the defect is determined and used to split the field into segments across the defect. In this manner the defect is skipped.
The computation of the logical length of the field, i.e. the calculation of the number of ECC bytes and padding bytes as well as the calculation of defect skipping, occurs in the fixed time gap immediately preceding the field to be transferred.
In order to maximize the data transfer rate and the track capacity, it is desirable to minimize the fixed time gaps between fields or at least to maintain the fixed time gaps the same length so that newer disk files can utilize the same track format as prior disk files. However, improvements in error correction techniques, which result in a more complex two-level ECC, require more complex calculations in the fixed time gaps. An error correcting system which utilizes a two-level ECC is described in U.S. Pat. No. 4,525,838, which is assigned to the same assignee as this application. Thus, while in the use of prior single-level ECC it was necessary to merely add a fixed number of ECC bytes at the end of each field, the use of two-level ECC requires that a computation be preformed to determine the number of subblocks of data within each field. Thereafter the ECC encoder appends ECC bytes at the end of each subblock to provide a first level of error correction, and additional ECC bytes at the end of the complete field to provide the second level of error correction. These additional computations require more time than that required for single-level ECC. Thus a technique must be found to prevent increasing the fixed time gap between the fields, so that two-level ECC can be incorporated into prior data recording systems which utilize a preexisting fixed data track format with fixed time gaps between the fields.